Endpoint de Busca de Anúncios
POST /search
Base URL: https://api.prd.valuation.eemovel.com.br/valuation/adsky/internal
Endpoint responsável por buscar amostras de imóveis baseado nos critérios fornecidos.
Headers
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| roleid | string | Sim | ID da role para autenticação (ex: 1dcedd1737b59b57d54892985ce6e78c) |
| x-api-key | string | Sim | Chave de autenticação única fornecida pelo suporte |
Body
O body deve seguir o schema SearchSamplesPayload com os seguintes parâmetros opcionais:
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
| paginate_from | integer | 0 | Ponto de início da paginação |
| property_type | array[integer] | - | Tipos de propriedade |
| business_type | string | - | Tipo de negócio (ex: "sale", "rent") |
| min_price | number | - | Preço mínimo |
| max_price | number | - | Preço máximo |
| min_sqrmeter_price | number | - | Preço mínimo por metro quadrado |
| max_sqrmeter_price | number | - | Preço máximo por metro quadrado |
| min_area | number | - | Área mínima |
| max_area | number | - | Área máxima |
| min_total_area | number | - | Área total mínima |
| max_total_area | number | - | Área total máxima |
| active | boolean | - | Se está ativo |
| lat | number | - | Latitude |
| lon | number | - | Longitude |
| distance | number | 500 | Distância em metros |
| polygon | string | - | Polígono de busca |
| address_quality | array[integer] | - | Qualidade do endereço |
| bedrooms | array[integer] | - | Número de quartos |
| bathrooms | array[integer] | - | Número de banheiros |
| suites | array[integer] | - | Número de suítes |
| garages | array[integer] | - | Número de garagens |
| min_age | integer | - | Idade mínima do anúncio em dias |
| max_age | integer | - | Idade máxima do anúncio em dias |
| reference_realty | object | - | Imóvel de referência |
| sort_by | string | "area" | Campo para ordenação (area, features_bedroom, feature_garage, age, transaction_sale, transaction_rent, similarity_index, sqrmeter_price_area_sale, sqrmeter_price_area_rent, features_suite, features_bathroom) |
| order | string | "desc" | Direção da ordenação (asc ou desc) |
| address | string | - | Endereço do imóvel |
Imóvel de Referência (reference_realty)
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| lat | number | Sim | Latitude do imóvel de referência |
| lon | number | Sim | Longitude do imóvel de referência |
| street | string | Não | Rua do imóvel de referência |
| number | string | Não | Número do imóvel de referência |
| area | number | Não | Área do imóvel de referência |
| bedrooms | integer | Não | Número de quartos |
| suites | integer | Não | Número de suítes |
| garages | integer | Não | Número de garagens |
| bathrooms | integer | Não | Número de banheiros |
| property_type | string | Não | Tipo de imóvel (Apartamento ou Casa) |
Paginação
Para navegar pelos resultados, utilize o parâmetro paginate_from no body da requisição:
- Primeira página:
paginate_from: 0 - Próximas páginas: Use o valor
after_keyretornado na resposta anterior
Exemplo:
{
"paginate_from": 0,
"lat": -23.5505,
"lon": -46.6333
}
A resposta incluirá um campo after_key que deve ser usado como paginate_from na próxima requisição:
{
"samples": [...],
"after_key": 75
}
Para a próxima página:
{
"paginate_from": 75,
"lat": -23.5505,
"lon": -46.6333
}
Resposta
Status Code: 200
Descrição: Sucesso - retorna a lista de amostras encontradas
Estrutura da Resposta
{
"samples": [
{
"area": number,
"category_name": "string",
"city_name": "string",
"created_at": "string",
"features_bathroom": integer,
"features_bedroom": integer,
"features_garage": integer,
"geo_process_address_status": integer,
"link": "string",
"link_key": "string",
"location_point": [longitude, latitude],
"neighborhood_name": "string",
"photos": ["string"],
"processed_address_formatted": "string",
"processed_address_number": "string",
"processed_address_street": "string",
"realty_id": "string",
"sqrmeter_price_area_sale": number,
"sqrmeter_price_totalarea_sale": number,
"state_name": "string",
"state_uf": "string",
"sub_category_id": integer,
"total_area": number,
"transaction_sale": number,
"updated_at": "string",
"age": integer,
"ad_count": integer,
"similarity_index": number
}
],
"after_key": integer
}
Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
| samples | array | Lista de amostras de imóveis encontradas |
| samples[].area | number | Área útil do imóvel |
| samples[].category_name | string | Nome da categoria (ex: Apartamento, Casa) |
| samples[].city_name | string | Nome da cidade |
| samples[].created_at | string | Data de criação do anúncio (ISO 8601) |
| samples[].features_bathroom | integer | Número de banheiros |
| samples[].features_bedroom | integer | Número de quartos |
| samples[].features_garage | integer | Número de garagens |
| samples[].geo_process_address_status | integer | Status do processamento geográfico do endereço |
| samples[].link | string | URL do anúncio original |
| samples[].link_key | string | Chave única do link |
| samples[].location_point | array[number] | Coordenadas [longitude, latitude] |
| samples[].neighborhood_name | string | Nome do bairro |
| samples[].photos | array[string] | URLs das fotos do imóvel |
| samples[].processed_address_formatted | string | Endereço formatado |
| samples[].processed_address_number | string | Número do endereço |
| samples[].processed_address_street | string | Nome da rua |
| samples[].realty_id | string | ID único do imóvel |
| samples[].sqrmeter_price_area_sale | number | Preço por m² da área útil para venda |
| samples[].sqrmeter_price_totalarea_sale | number | Preço por m² da área total para venda |
| samples[].state_name | string | Nome do estado |
| samples[].state_uf | string | Sigla do estado |
| samples[].sub_category_id | integer | ID da subcategoria |
| samples[].total_area | number | Área total do imóvel |
| samples[].transaction_sale | number | Valor de venda |
| samples[].updated_at | string | Data da última atualização (ISO 8601) |
| samples[].age | integer | Idade do anúncio em dias |
| samples[].ad_count | integer | Quantidade de anúncios deste imóvel |
| samples[].similarity_index | number | Índice de similaridade (pode ser null) |
| after_key | integer | Chave para paginação da próxima página |
Exemplo de uso
curl -X POST https://api.prd.valuation.eemovel.com.br/valuation/adsky/internal/search \
-H "Content-Type: application/json" \
-H "roleid: 1dcedd1737b59b57d54892985ce6e78c" \
-H "x-api-key: sua-api-key-aqui" \
-d '{
"lat": -23.5505,
"lon": -46.6333,
"distance": 1000,
"property_type": [1, 2],
"min_area": 50,
"max_area": 200,
"paginate_from": 0,
"reference_realty": {
"lat": -23.5505,
"lon": -46.6333,
"area": 80,
"bedrooms": 2,
"property_type": "Apartamento"
}
}'